﻿#region

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using System.Web.UI.WebControls;
using CuongHanh.Context;
using CuongHanh.DAL;
using CuongHanh.Models;

#endregion

namespace CuongHanh
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : HttpApplication
    {
        protected void Application_Start()
        {
            //MasterDbContext adf=new MasterDbContext();
            //adf.Banners.Add(new Banner());
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();

            //Cached.Sigleton.LoadBestSaller();
            //Cached.Sigleton.LoadNewProduct();
            MultiCache<MyStyle>.Singleton.SetFuncUpdateModel(new MyStyle().UpdateCache);
            //CacheList<StyleMaterial>.Singleton.GetCache(5);


            AppUtil.InIt(Server);
            string lastupdate = TiGiaContext.Singleton.LastUpdate;
            //Random r = new Random();

            //using (UnitOfWork unitOfWork = new UnitOfWork())
            //{
            //    //for (int i = 1; i < 100; i++)
            //    //{
            //    //    Dictionary<int, int> dic1 = new Dictionary<int, int>();
            //    //    Dictionary<int, int> dic2 = new Dictionary<int, int>();
            //    //    for (int j = 1; j < r.Next(4, 10); j++)
            //    //    {
            //    //        var temp1 = randomNext(dic1,
            //    //                r);

            //    //        unitOfWork.Insert(new StyleMaterial()
            //    //                          {
            //    //                              StyleId = i,
            //    //                              MaterialId = temp1,
            //    //                              Image = string.Format("{0}.jpg", r.Next(1, 10)),
            //    //                              Price = r.Next(1000, 9999) * 1000
            //    //                          });

            //    //        var temp2 = randomNext(dic2,
            //    //                r);
            //    //        unitOfWork.Insert(new StyleStone()
            //    //        {
            //    //            StyleId = i,
            //    //            StoneId = temp2,
            //    //            Image = string.Format("{0}.jpg", r.Next(1, 10)),
            //    //            Price = r.Next(1000, 9999) * 1000
            //    //        });
            //    //    }

            //    //}

            //    for (int i = 1; i < 100; i++)
            //    {
            //        unitOfWork.Insert(new MyStyle()
            //                          {
            //                              Code = string.Format("Style {0}", i),
            //                              Name = string.Format("Style {0}", i),
            //                              Image = string.Format("{0}.jpg", r.Next(1, 10)),
            //                              LastModified = DateTime.Now
            //                          });
            //        unitOfWork.Insert(new Material()
            //        {
            //            Code = string.Format("Material {0}", i),
            //            Name = string.Format("Material {0}", i),
            //            Image = string.Format("{0}.jpg", r.Next(1, 10)),
            //            LastModified = DateTime.Now
            //        });
            //        unitOfWork.Insert(new MyStone()
            //        {
            //            Code = string.Format("Stone {0}", i),
            //            Name = string.Format("Stone {0}", i),
            //            Image = string.Format("{0}.jpg", r.Next(1, 10)),
            //            LastModified = DateTime.Now
            //        });
            //    }
            //    unitOfWork.Save();
            //}
        }



        private int randomNext(Dictionary<int, int> dic,
                Random r)
        {
            while (true)
            {
                var temp = r.Next(1,
                        99);
                if(!dic.ContainsKey(temp))
                {
                    dic[temp] = temp;
                    return temp;
                }
            }
        }

    }
}
